<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  
  <title>git与github使用 | 邢万江</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  <meta name="description" content="版本控制系统为什么要有版本控制系统 通过注册与登录的需求引入版本控制系统   在开发过程中，经常需要对一个文件进行修改甚至删除，但是我们又希望能够保存这个文件的历史记录，如果通过备份，那么管理起来会非常的复杂。 在多人开发时，如果需要多人合作开发一个页面，那么修改以及合并也会非常的棘手。容易出现冲突。  什么是版本控制系统 版本控制系统（Version Control System）:是一种记录一">
<meta property="og:type" content="article">
<meta property="og:title" content="git与github使用">
<meta property="og:url" content="http://yoursite.com/2019/03/10/git%E4%B8%8Egithub%E4%BD%BF%E7%94%A8/index.html">
<meta property="og:site_name" content="邢万江">
<meta property="og:description" content="版本控制系统为什么要有版本控制系统 通过注册与登录的需求引入版本控制系统   在开发过程中，经常需要对一个文件进行修改甚至删除，但是我们又希望能够保存这个文件的历史记录，如果通过备份，那么管理起来会非常的复杂。 在多人开发时，如果需要多人合作开发一个页面，那么修改以及合并也会非常的棘手。容易出现冲突。  什么是版本控制系统 版本控制系统（Version Control System）:是一种记录一">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="e:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git1.png">
<meta property="og:image" content="e:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git2.png">
<meta property="og:image" content="e:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git3.png">
<meta property="og:image" content="e:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git01.png">
<meta property="og:image" content="e:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git02.png">
<meta property="og:image" content="e:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/fenzhi.png">
<meta property="article:published_time" content="2019-03-09T16:00:00.000Z">
<meta property="article:modified_time" content="2020-05-19T01:05:58.185Z">
<meta property="article:author" content="程序猿">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="e:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git1.png">
  
    <link rel="alternative" href="/atom.xml" title="邢万江" type="application/atom+xml">
  
  
    <link rel="icon" href="/http://oayoilchh.bkt.clouddn.com/2016/07/27/18:05:26%20">
  
  
      
<link rel="stylesheet" href="//cdn.bootcss.com/animate.css/3.5.0/animate.min.css">

  
  
<link rel="stylesheet" href="/css/style.css">

  <link rel="stylesheet" href="/font-awesome/css/font-awesome.min.css">
  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
  
  
      <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  
  <!-- 加载特效 -->
    <script src="/js/pace.js"></script>
    <link href="/css/pace/pace-theme-flash.css" rel="stylesheet" />
  <script>
      var yiliaConfig = {
          rootUrl: '/',
          fancybox: true,
          animate: true,
          isHome: false,
          isPost: true,
          isArchive: false,
          isTag: false,
          isCategory: false,
          open_in_new: false
      }
  </script>
<meta name="generator" content="Hexo 4.2.1"></head>
<body>
  <div id="container">
    <div class="left-col">
    <div class="overlay"></div>
<div class="intrude-less">
    <header id="header" class="inner">
        <script src="http://7.url.cn/edu/jslib/comb/require-2.1.6,jquery-1.9.1.min.js"></script>
        <a href="/" class="profilepic">
            
            <img lazy-src="img/head.jpg" class="js-avatar">
            
        </a>
        <hgroup>
          <h1 class="header-author"><a href="/">程序猿</a></h1>
        </hgroup>
        
        
            <form>
                <input type="text" class="st-default-search-input search" id="local-search-input" placeholder="搜索一下" autocomplete="off">
            </form>
            <div id="local-search-result"></div>
        
        
            <script type="text/javascript">
                (function() {
                    'use strict';
                    function getMatchData(keyword, data) {
                        var matchData = [];
                        for(var i =0;i<data.length;i++){
                            if(data[i].title.toLowerCase().indexOf(keyword)>=0) 
                                matchData.push(data[i])
                        }
                        return matchData;
                    }
                    var $input = $('#local-search-input');
                    var $resultContent = $('#local-search-result');
                    $input.keyup(function(){
                        $.ajax({
                            url: '/search.json',
                            dataType: "json",
                            success: function( json ) {
                                var str='<ul class=\"search-result-list\">';                
                                var keyword = $input.val().trim().toLowerCase();
                                $resultContent.innerHTML = "";
                                if ($input.val().trim().length <= 0) {
                                    $resultContent.empty();
                                    $('#switch-area').show();
                                    return;
                                }
                                var results = getMatchData(keyword, json);
                                if(results.length === 0){
                                    $resultContent.empty();
                                    $('#switch-area').show();
                                    return;
                                } 
                                for(var i =0; i<results.length; i++){
                                    str += "<li><a href='"+ results[i].url +"' class='search-result-title'>"+ results[i].title +"</a></li>";
                                }
                                str += "</ul>";
                                $resultContent.empty();
                                $resultContent.append(str);
                                $('#switch-area').hide();
                            }
                        });
                    });
                })();
            </script>
        
        
            <div id="switch-btn" class="switch-btn">
                <div class="icon">
                    <div class="icon-ctn">
                        <div class="icon-wrap icon-house" data-idx="0">
                            <div class="birdhouse"></div>
                            <div class="birdhouse_holes"></div>
                        </div>
                        <div class="icon-wrap icon-ribbon hide" data-idx="1">
                            <div class="ribbon"></div>
                        </div>
                        
                        <div class="icon-wrap icon-link hide" data-idx="2">
                            <div class="loopback_l"></div>
                            <div class="loopback_r"></div>
                        </div>
                        
                        
                        <div class="icon-wrap icon-me hide" data-idx="3">
                            <div class="user"></div>
                            <div class="shoulder"></div>
                        </div>
                        
                    </div>
                </div>
                <div class="tips-box hide">
                    <div class="tips-arrow"></div>
                    <ul class="tips-inner">
                        <li>菜单</li>
                        <li>标签</li>
                        
                        <li>友情链接</li>
                        
                        
                        <li>关于我</li>
                        
                    </ul>
                </div>
            </div>
        
        <div id="switch-area" class="switch-area">
            <div class="switch-wrap">
                <section class="switch-part switch-part1">
                    <nav class="header-menu">
                        <ul>
                        
                            <li><a  href="http://bestwing.me" target="_blank" rel="noopener">博客首页</a></li>
                        
                            <li><a  href="/archives">文章归档</a></li>
                        
                            <li><a  href="/CTFStudy">学习导航</a></li>
                        
                            <li><a  href="/PWNABLE">PWNABLE</a></li>
                        
                            <li><a  href="/resume">个人简历</a></li>
                        
                        </ul>
                    </nav>
                    <nav class="header-nav">
                        <ul class="social">
                            
                                <a class="fl mail"  target="_blank" href="/760996296@qq.com" title="mail">mail</a>
                            
                                <a class="fl github"  target="_blank" href="https://github.com/xingwanjiang" title="github">github</a>
                            
                                <a class="fl zhihu"  target="_blank" href="https://www.baidu.com/people/Swings" title="zhihu">zhihu</a>
                            
                                <a class="fl weibo"  target="_blank" href="https://weibo.com/u/7346457923/home?wvr=5" title="weibo">weibo</a>
                            
                                <a class="fl rss"  target="_blank" href="/atom.xml" title="rss">rss</a>
                            
                        </ul>
                    </nav>
                </section>
                
                <section class="switch-part switch-part2">
                    <div class="widget tagcloud" id="js-tagcloud">
                        
                    </div>
                </section>
                
                
                <section class="switch-part switch-part3">
                    <div id="js-friends">
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://ring3.xyz/">Yllen</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://mxny.org/">麦香浓郁</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://whereisk0shl.top/">K0sh1</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.ycjcl.cc/">信鑫</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://bystudent.com/">ByStundet表哥</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="https://www.jarviswang.me/">汪神_Jarvis</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://sh3ll.me/">Chu</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="https://www.hackfun.org/">4ido10n</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.cnblogs.com/iamstudy">L3m0n</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://o0xmuhe.me/">muhe</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://blog.nuptzj.cn/">_画船听雨</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.virzz.com/index.html">Virink</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.sqlsec.com/">国光</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.bodkin.ren/">老锥</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.cizel.cn/">C1zel</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://1phan.cc">1phan</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="https://www.liuil.top/">liuil</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.cnblogs.com/Ox9A82/">Ox9A82</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://burnegg.com/">burnegg</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="https://jwrsec.cn/">jwr-sec</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://sudalover.cn/">苏打</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://blog.binklac.com">VeroFess</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.bendawang.site/">bendawang</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://weeklyalgo.codes/">hook</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.flier.net.cn/">Flier&#39;blog</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://www.mutepig.club">mutepig</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="https://blog.iret.xyz/list.aspx">Silver</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://simp1e.leanote.com/">Simple</a>
                    
                      <a target="_blank"  class="main-nav-link switch-friends-link" href="http://processor.pub/">Processor</a>
                    
                    </div>
                </section>
                
                
                
                <section class="switch-part switch-part4">
                
                    <div id="js-aboutme">一只淹死在二进制海洋里的二进制狗</div>
                </section>
                
            </div>
        </div>
    </header>
</div>

    </div>
    <div class="mid-col">
      <nav id="mobile-nav">
      <div class="overlay">
          <div class="slider-trigger"></div>
          <h1 class="header-author js-mobile-header hide"><a href="/" title="Me">程序猿</a></h1>
      </div>
    <div class="intrude-less">
        <header id="header" class="inner">
            <a href="/" class="profilepic">
                
                    <img lazy-src="/img/head.jpg" class="js-avatar">
                
            </a>
            <hgroup>
              <h1 class="header-author"><a href="/" title="Me">程序猿</a></h1>
            </hgroup>
            
            <nav class="header-menu">
                <ul>
                
                    <li><a href="http://bestwing.me" target="_blank" rel="noopener">博客首页</a></li>
                
                    <li><a href="/archives">文章归档</a></li>
                
                    <li><a href="/CTFStudy">学习导航</a></li>
                
                    <li><a href="/PWNABLE">PWNABLE</a></li>
                
                    <li><a href="/resume">个人简历</a></li>
                
                <div class="clearfix"></div>
                </ul>
            </nav>
            <nav class="header-nav">
                <div class="social">
                    
                        <a class="mail" target="_blank" href="/760996296@qq.com" title="mail">mail</a>
                    
                        <a class="github" target="_blank" href="https://github.com/xingwanjiang" title="github">github</a>
                    
                        <a class="zhihu" target="_blank" href="https://www.baidu.com/people/Swings" title="zhihu">zhihu</a>
                    
                        <a class="weibo" target="_blank" href="https://weibo.com/u/7346457923/home?wvr=5" title="weibo">weibo</a>
                    
                        <a class="rss" target="_blank" href="/atom.xml" title="rss">rss</a>
                    
                </div>
            </nav>
        </header>                
    </div>
</nav>
      <div class="body-wrap"><article id="post-git与github使用" class="article article-type-post" itemscope itemprop="blogPost">
  
    <div class="article-meta">
      <a href="/2019/03/10/git%E4%B8%8Egithub%E4%BD%BF%E7%94%A8/" class="article-date">
      <time datetime="2019-03-09T16:00:00.000Z" itemprop="datePublished">2019-03-10</time>
</a>
    </div>
  
  <div class="article-inner">
    
      <input type="hidden" class="isFancy" />
    
    
      <header class="article-header">
        
  
    <h1 class="article-title" itemprop="name">
      git与github使用
    </h1>
  

      </header>
      
      <div class="article-info article-info-post">
        

        
        <div class="clearfix"></div>
      </div>
      
    
    <div class="article-entry" itemprop="articleBody">
      
          
        <h1 id="版本控制系统"><a href="#版本控制系统" class="headerlink" title="版本控制系统"></a>版本控制系统</h1><h2 id="为什么要有版本控制系统"><a href="#为什么要有版本控制系统" class="headerlink" title="为什么要有版本控制系统"></a>为什么要有版本控制系统</h2><blockquote>
<p>通过注册与登录的需求引入版本控制系统</p>
</blockquote>
<ol>
<li>在开发过程中，经常需要对一个文件进行修改甚至删除，但是我们又希望能够保存这个文件的历史记录，如果通过备份，那么管理起来会非常的复杂。</li>
<li>在多人开发时，如果需要多人合作开发一个页面，那么修改以及合并也会非常的棘手。容易出现冲突。</li>
</ol>
<h2 id="什么是版本控制系统"><a href="#什么是版本控制系统" class="headerlink" title="什么是版本控制系统"></a>什么是版本控制系统</h2><blockquote>
<p>版本控制系统（Version Control System）:是一种记录一个或若干文件内容变化，以便将来查阅特定版本修订情况的系统。</p>
</blockquote>
<p>版本控制系统不仅可以应用于软件源代码的文本文件，而且可以对任何类型的文件进行版本控制。</p>
<p>【使用webstorm演示版本控制系统】</p>
<h2 id="版本控制系统的分类"><a href="#版本控制系统的分类" class="headerlink" title="版本控制系统的分类"></a>版本控制系统的分类</h2><p>参考文章：<a href="https://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6" target="_blank" rel="noopener">关于版本控制的介绍</a></p>
<h3 id="本地版本控制系统"><a href="#本地版本控制系统" class="headerlink" title="本地版本控制系统"></a>本地版本控制系统</h3><p><img src="E:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git1.png" alt=""></p>
<p>本地版本控制系统就是在一台机器上，记录版本的不同变化，保证内容不会丢失</p>
<ol>
<li>如果多人开发，每个人都在不同的系统和电脑上开发，没办法协同工作。</li>
</ol>
<h3 id="集中式版本控制系統"><a href="#集中式版本控制系統" class="headerlink" title="集中式版本控制系統"></a>集中式版本控制系統</h3><p><img src="E:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git2.png" alt=""></p>
<p>svn是集中式的版本控制系统，集中式版本控制系统都有一个单一的集中管理的服务器（中央服务器），保存所有文件的修订版本，而协同工作的人们都通过客户端连到这台服务器，取出最新的文件或者提交更新。</p>
<ol>
<li>需要一个中央服务器来管理代码的的版本和备份</li>
<li>所有的用户电脑都是从中央服务器获取代码或者是将本地的代码提交到中央服务器</li>
<li>依赖与网络环境，如果连不上中央服务器，就无法提交和获取代码。</li>
</ol>
<h3 id="分布式版本控制系统"><a href="#分布式版本控制系统" class="headerlink" title="分布式版本控制系统"></a>分布式版本控制系统</h3><p><img src="E:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git3.png" alt=""></p>
<p>git是分布式的版本控制系统。分布式版本控制系统的客户端并不只提取最新版本的文件快照，而是把代码仓库完整地镜像下来。这么一来，任何一处协同工作用的服务器发生故障，事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作，实际上都是一次对代码仓库的完整备份</p>
<ol>
<li>需要一台服务器作为代码仓库</li>
<li>每个用户电脑都是一个服务器（代码仓库），并且和代码仓库是镜像的，用户修改和获取代码都是提交到自己的服务器当中。</li>
<li>不需要网络就可以进行工作。</li>
<li>当连接网络时，用户可以选择将自己的服务器与代码仓库进行同步。</li>
</ol>
<h1 id="git基础入门"><a href="#git基础入门" class="headerlink" title="git基础入门"></a>git基础入门</h1><blockquote>
<p>Git是一款免费、开源的<strong>分布式</strong> <strong>版本控制系统</strong> ，用于敏捷高效地处理任何或小或大的项目。</p>
<p>Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。</p>
</blockquote>
<h2 id="git的安装"><a href="#git的安装" class="headerlink" title="git的安装"></a>git的安装</h2><p><a href="https://git-scm.com/download/win" target="_blank" rel="noopener">下载地址</a></p>
<p>注意：</p>
<ol>
<li>不要安装在中文目录</li>
<li>不要使用桌面管理软件</li>
</ol>
<p>安装很简单，一直下一步即可。在任意的目录下右键，能看到菜单, 就表示安装成功了。</p>
<p>使用git的两种方式</p>
<ol>
<li>git gui，即图形化界面的方式</li>
<li>git bash，命令行的方式（推荐）</li>
</ol>
<h2 id="git三个区"><a href="#git三个区" class="headerlink" title="git三个区"></a>git三个区</h2><p>要对某个项目使用git进行管理，需要使用<code>git init</code>命令初始化git仓库<br><code>git init</code>会在当前目录生成一个隐藏文件夹 .git  不要去修改这个文件夹下的任意东西。</p>
<p>git仓库会分成三个区</p>
<p>工作区：我们书写代码的地方，工作的目录就叫工作区。</p>
<p>暂存区：暂时存储的区域，在git中，代码无法直接从工作区提交到仓库区，而是需要先从工作区添加到暂存区，然后才能从暂存区提交到仓库区。暂存区的目的是避免误操作。</p>
<p>本地仓库区：将保存在暂存区域的内容永久转储到 Git 仓库中，生成版本号。生成版本号之后，就可以任何的回退到某一个具体的版本。</p>
<h2 id="git基本命令"><a href="#git基本命令" class="headerlink" title="git基本命令"></a>git基本命令</h2><h3 id="git-init"><a href="#git-init" class="headerlink" title="git init"></a>git init</h3><ul>
<li>作用：初始化git仓库，想要使用git对某个项目进行管理，需要<code>git init</code>进行初始化</li>
</ul>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 初始化仓库， 在当前目录下生成一个隐藏文件夹.git</span></span><br><span class="line">git init</span><br></pre></td></tr></table></figure>

<h3 id="git-add"><a href="#git-add" class="headerlink" title="git add"></a>git add</h3><ul>
<li>作用：将文件由 <code>工作区</code> 添加到 <code>暂存区</code>，在git中，文件无法直接从工作区直接添加到仓库区，必须先从工作区添加到暂存区，再从暂存区添加到仓库区。</li>
<li>命令：<code>git add 文件名/目录名</code></li>
</ul>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 将index.html添加到暂存区</span></span><br><span class="line">git add index.html</span><br><span class="line"></span><br><span class="line"><span class="comment"># 将css目录下所有的文件添加到暂存区</span></span><br><span class="line">git add css</span><br><span class="line"></span><br><span class="line"><span class="comment"># 将当前目录下所有的js文件添加到暂存区</span></span><br><span class="line">git add *.js</span><br><span class="line"></span><br><span class="line"><span class="comment"># 添加当前目录下所有的文件</span></span><br><span class="line">git add .</span><br><span class="line">git add -A</span><br><span class="line">git add --all</span><br></pre></td></tr></table></figure>

<h3 id="git-commit"><a href="#git-commit" class="headerlink" title="git commit"></a>git commit</h3><p>作用：将文件由 暂存区 添加到 仓库区，生成版本号</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 将文件从暂存区提交到仓库</span></span><br><span class="line">git commit -m <span class="string">"提交说明"</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 如果不写提交说明，会进入vi编辑器，没有写提交说明，是提交不成功的。</span></span><br><span class="line">git commit   <span class="comment"># 需要使用vi输入内容</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 如果是一个已经暂存过的文件，可以快速提交，如果是未追踪的文件，那么命令将不生效。</span></span><br><span class="line">git commit -a -m <span class="string">'提交说明'</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 修改最近的一次提交说明， 如果提交说明不小心输错了，可以使用这个命令</span></span><br><span class="line">git commit --amend -m <span class="string">"提交说明"</span></span><br></pre></td></tr></table></figure>

<h3 id="git-config配置"><a href="#git-config配置" class="headerlink" title="git config配置"></a>git config配置</h3><p>如果是第一次提交，需要配置提交者信息，推荐和github的账号邮箱一致</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># git config  user.name 你的目标用户名</span></span><br><span class="line"><span class="comment"># git config  user.email 你的目标邮箱名</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 使用--global参数，配置全局的用户名和邮箱，只需要配置一次即可。推荐配置github的用户名和密码</span></span><br><span class="line">git config  --global user.name Jepson</span><br><span class="line">git config  --global user.email jepsonpp@qq.com</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看配置信息</span></span><br><span class="line">git config --list</span><br></pre></td></tr></table></figure>

<h3 id="git-status"><a href="#git-status" class="headerlink" title="git status"></a>git status</h3><ul>
<li>作用：查看文件的状态</li>
</ul>
<ul>
<li>命令：<code>git status</code> <ul>
<li>红色表示工作区中的文件需要提交</li>
<li>绿色表示暂存区中的文件需要提交</li>
</ul>
</li>
<li>命令：<code>git stauts -s</code> 简化日志输出格式</li>
</ul>
<h3 id="git-log"><a href="#git-log" class="headerlink" title="git log"></a>git log</h3><ul>
<li>作用：查看提交日志</li>
<li><code>git log</code> 查看提交的日志</li>
<li><code>git log --oneline</code> 简洁的日志信息</li>
</ul>
<p><img src="E:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git01.png" alt=""></p>
<h2 id="git对比"><a href="#git对比" class="headerlink" title="git对比"></a>git对比</h2><h3 id="git-diff"><a href="#git-diff" class="headerlink" title="git diff"></a>git diff</h3><p><code>git diff</code>可以查看每次提交的内容的不同</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 查看工作区与暂存区的不同</span></span><br><span class="line">git diff</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看暂存区与仓库区的不同</span></span><br><span class="line">git diff --cached</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看工作区与仓库区的不同，HEAD表示最新的那次提交</span></span><br><span class="line">git diff HEAD</span><br><span class="line"></span><br><span class="line"><span class="comment"># 查看两个版本之间的不同</span></span><br><span class="line">git diff c265262 de4845b</span><br></pre></td></tr></table></figure>

<p><img src="E:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/git02.png" alt=""></p>
<h2 id="git重置"><a href="#git重置" class="headerlink" title="git重置"></a>git重置</h2><h3 id="git-reset"><a href="#git-reset" class="headerlink" title="git reset"></a>git reset</h3><ul>
<li>作用：版本回退，将代码恢复到已经提交的某一个版本中。</li>
<li><code>git reset --hard 版本号</code> 将代码回退到某个指定的版本(版本号只要有前几位即可)</li>
<li><code>git reset --hard head~1</code>将版本回退到上一次提交<ul>
<li>~1:上一次提交</li>
<li>~2:上上次提交</li>
<li>~0:当前提交</li>
</ul>
</li>
</ul>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br></pre></td><td class="code"><pre><span class="line">关于参数 --hard的解释</span><br><span class="line">git reset 的参数可以是以下三个值：</span><br><span class="line">git reset --soft 版本号  ： 只重置仓库区</span><br><span class="line">git reset --mixed 版本号 ： 重置仓库区和暂存区【默认】</span><br><span class="line">git reset --hard  版本号 ： 重置仓库区和暂存区和工作区。</span><br><span class="line">git reset 版本号         : 效果与--mixed一致</span><br></pre></td></tr></table></figure>

<ul>
<li>当使用了<code>git reset</code>命令后，版本会回退，使用<code>git log</code>只能看到当前版本之前的信息。使用<code>git reflog</code>可以查看所有的版本信息</li>
</ul>
<h2 id="git忽视文件"><a href="#git忽视文件" class="headerlink" title="git忽视文件"></a>git忽视文件</h2><blockquote>
<p>在仓库中，有些文件是不想被git管理的，比如数据的配置密码、写代码的一些思路等。git可以通过配置从而达到忽视掉一些文件，这样这些文件就可以不用提交了。</p>
</blockquote>
<ul>
<li>在仓库的根目录创建一个<code>.gitignore</code>的文件，文件名是固定的。</li>
<li>将不需要被git管理的文件路径添加到<code>.gitignore</code>中</li>
</ul>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 忽视idea.txt文件</span></span><br><span class="line">idea.txt</span><br><span class="line"></span><br><span class="line"><span class="comment"># 忽视.gitignore文件</span></span><br><span class="line">.gitignore</span><br><span class="line"></span><br><span class="line"><span class="comment"># 忽视css下的index.js文件</span></span><br><span class="line">css/index.js</span><br><span class="line"></span><br><span class="line"><span class="comment"># 忽视css下的所有的js文件</span></span><br><span class="line">css/*.js</span><br><span class="line"></span><br><span class="line"><span class="comment"># 忽视css下的所有文件</span></span><br><span class="line">css/*.*</span><br><span class="line"><span class="comment"># 忽视css文件夹</span></span><br><span class="line">css</span><br></pre></td></tr></table></figure>

<h1 id="git分支操作"><a href="#git分支操作" class="headerlink" title="git分支操作"></a>git分支操作</h1><p>分支就是科幻电影里面的平行宇宙，当你正在电脑前努力学习Git的时候，另一个你正在另一个平行宇宙里努力学习SVN。</p>
<p>如果两个平行宇宙互不干扰，那对现在的你也没啥影响。不过，在某个时间点，两个平行宇宙合并了，结果，你既学会了Git又学会了SVN！</p>
<p><img src="E:/%E5%89%8D%E7%AB%AF%E8%B5%84%E6%96%99/git/02-%E7%AC%94%E8%AE%B0/images/fenzhi.png" alt=""></p>
<h2 id="为什么要有分支？"><a href="#为什么要有分支？" class="headerlink" title="为什么要有分支？"></a>为什么要有分支？</h2><ul>
<li>如果你要开发一个新的功能，需要2周时间，第一周你只能写50%代码，如果此时立即提交，代码没写完，不完整的代码会影响到别人无法工作。如果等代码写完再提交，代码很容易丢失，风险很大。</li>
<li>有了分支，你就可以创建一个属于自己的分支，别人看不到，也不影响别人，你在自己的分支上工作，提交到自己的分支上，等到功能开发完毕，一次性的合并到原来的分支。这样既安全，又不影响他人工作。</li>
<li>在工作过程中，经常会碰到<strong>多任务并行开发</strong> 的情况，使用分支就能很好的避免任务之间的影响。</li>
<li>其他版本工具比如svn，cvs中也有分支这个概念，但是这些工具中的分支操作非常的慢，形同摆设。</li>
</ul>
<h2 id="git分支命令"><a href="#git分支命令" class="headerlink" title="git分支命令"></a>git分支命令</h2><blockquote>
<p>在git中，分支实质上仅仅是一个指针，每次代码提交后，这个分支指针就会向后移动，保证一直指向最后一次提交的的版本。git中使用HEAD指向当前分支</p>
</blockquote>
<h3 id="创建分支"><a href="#创建分支" class="headerlink" title="创建分支"></a>创建分支</h3><ul>
<li><code>git branch 分支名称</code>创建分支，分支中的代码，在创建时与当前分支的内容完全相同。</li>
<li>git在第一次提交时，就有了一个叫<code>master</code>的主分支。</li>
<li><code>git branch dev</code>，创建了一个叫做dev的分支</li>
</ul>
<h3 id="查看分支"><a href="#查看分支" class="headerlink" title="查看分支"></a>查看分支</h3><ul>
<li><code>git branch</code>可以查看所有的分支，</li>
<li>在当前分支的前面会有一个<code>*</code></li>
<li>在git中，有一个特殊指针<code>HEAD</code>,永远会指向当前分支</li>
</ul>
<h3 id="切换分支"><a href="#切换分支" class="headerlink" title="切换分支"></a>切换分支</h3><ul>
<li><code>git checkout 分支名称</code>切换分支  HEAD指针指向了另一个分支</li>
<li>在当前分支的任何操作，都不会影响到其他的分支，除非进行了分支合并。</li>
<li>提交代码时，会生产版本号，当前分支会指向最新的版本号。</li>
</ul>
<h3 id="创建并切换分支"><a href="#创建并切换分支" class="headerlink" title="创建并切换分支"></a>创建并切换分支</h3><ul>
<li><code>git checkout -b 分支名称</code> 创建并切换分支</li>
<li>切换分支会做两件事情<ul>
<li>创建一个新分支</li>
<li>把head指针指向当前的分支</li>
</ul>
</li>
</ul>
<h3 id="删除分支"><a href="#删除分支" class="headerlink" title="删除分支"></a>删除分支</h3><ul>
<li><code>git branch -d 分支名称</code> 可以删除分支</li>
<li>注意：不能在当前分支删除当前分支，需要切换到其他分支才能删除。</li>
<li>注意：<code>master</code>分支是可以删除的，但是不推荐那么做。</li>
</ul>
<h3 id="合并分支"><a href="#合并分支" class="headerlink" title="合并分支"></a>合并分支</h3><ul>
<li><code>git merge 分支名称</code> 将其他分支的内容合并到当前分支。</li>
<li>在<code>master</code>分支中执行<code>git merge dev</code> 将<code>dev</code>分支中的代码合并到<code>master</code>分支</li>
<li><a href="https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF-%E5%88%86%E6%94%AF%E7%9A%84%E6%96%B0%E5%BB%BA%E4%B8%8E%E5%90%88%E5%B9%B6" target="_blank" rel="noopener">分支合并</a></li>
</ul>
<h2 id="git合并冲突"><a href="#git合并冲突" class="headerlink" title="git合并冲突"></a>git合并冲突</h2><ul>
<li>对于同一个文件，如果有多个分支需要合并时，容易出现冲突。</li>
<li>合并分支时，如果出现冲突，只能手动处理，再次提交，一般的作法，把自己的代码放到冲突代码的后面即可。</li>
</ul>
<h1 id="git远程仓库"><a href="#git远程仓库" class="headerlink" title="git远程仓库"></a>git远程仓库</h1><h2 id="github与git"><a href="#github与git" class="headerlink" title="github与git"></a>github与git</h2><p>git与github没有直接的关系。</p>
<ul>
<li>git是一个版本控制工具。</li>
<li>github是一个代码托管平台，开源社区，是git的一个远程代码仓库。</li>
</ul>
<figure class="highlight javascript"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">//1. gitHub是一个面向开源及私有软件项目的托管平台，因为只支持git 作为唯一的版本库格式进行托管，故名gitHub。</span></span><br><span class="line"><span class="comment">//2. github免费，代码所有人都能看到，但是只有你自己能修改。付费的可以隐藏。</span></span><br><span class="line"><span class="comment">//3. 创建git项目时，不能有中文。</span></span><br></pre></td></tr></table></figure>

<p><a href="https://github.com/" target="_blank" rel="noopener">github官网</a></p>
<p><a href="https://git.oschina.net/" target="_blank" rel="noopener">开源中国-git</a></p>
<h2 id="git-clone"><a href="#git-clone" class="headerlink" title="git clone"></a>git clone</h2><ul>
<li>作用：克隆远程仓库的代码到本地</li>
<li>git clone [远程仓库地址]</li>
<li><code>git clone git://github.com/jepsongithub/test.git</code>会在本地新建一个<code>test</code>文件夹，在test中包含了一个<code>.git</code>目录，用于保存所有的版本记录，同时test文件中还有最新的代码，你可以直接进行后续的开发和使用。</li>
<li>git克隆默认会使用远程仓库的项目名字，也可以自己指定。需要是使用以下命令：<code>git clone [远程仓库地址] [本地项目名]</code></li>
</ul>
<h2 id="git-push"><a href="#git-push" class="headerlink" title="git push"></a>git push</h2><ul>
<li>作用：将本地仓库中代码提交到远程仓库</li>
<li><code>git push 仓库地址 master</code> 在代码提交到远程仓库，注意master分支必须写，不能省略</li>
<li>例子：<code>git push git@github.com:jepsongithub/test.git master</code> 如果第一次使用，需要填写github的用户名和密码</li>
</ul>
<h2 id="git-pull"><a href="#git-pull" class="headerlink" title="git pull"></a>git pull</h2><ul>
<li>作用：将远程的代码下载到本地</li>
</ul>
<ul>
<li>通常在push前，需要先pull一次。</li>
</ul>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 获取远程仓库的更新，并且与本地的分支进行合并</span></span><br><span class="line">git pull</span><br></pre></td></tr></table></figure>

<h2 id="git-remote"><a href="#git-remote" class="headerlink" title="git remote"></a>git remote</h2><p>每次push操作都需要带上远程仓库的地址，非常的麻烦，我们可以给仓库地址设置一个别名</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 给远程仓库设置一个别名</span></span><br><span class="line">git remote add 仓库别名 仓库地址</span><br><span class="line">git remote add jepson git@github.com:jepsongithub/test.git</span><br><span class="line"></span><br><span class="line"><span class="comment"># 删除jepson这个别名</span></span><br><span class="line">git remote remove jepson</span><br><span class="line"></span><br><span class="line"><span class="comment"># git clone的仓库默认有一个origin的别名</span></span><br></pre></td></tr></table></figure>

<h2 id="SSH免密码登陆"><a href="#SSH免密码登陆" class="headerlink" title="SSH免密码登陆"></a>SSH免密码登陆</h2><p>git支持多种数据传输协议：</p>
<ul>
<li>https协议：<code>https://github.com/jepsongithub/test.git</code>  需要输入用户名和密码</li>
<li>ssh协议：<code>git@github.com:jepsongithub/test.git</code>   可以配置免密码登录</li>
</ul>
<p>每次push或者pull代码，如果使用https协议，那么都需要输入用户名和密码进行身份的确认，非常麻烦。</p>
<ul>
<li>github为了账户的安全，需要对每一次push请求都要验证用户的身份，只有合法的用户才可以push</li>
<li>使用ssh协议，配置ssh免密码，可以做到免密码往github推送代码</li>
</ul>
<h2 id="SSH免密码登录配置"><a href="#SSH免密码登录配置" class="headerlink" title="SSH免密码登录配置"></a>SSH免密码登录配置</h2><p>注意：这些命令需要在bash中敲</p>
<ul>
<li>1 创建SSH Key：<code>ssh-keygen -t rsa</code></li>
<li>2 在文件路径 <code>C:\用户\当前用户名\</code> 找到 <code>.ssh</code> 文件夹</li>
<li>3 文件夹中有两个文件：<ul>
<li>私钥：<code>id_rsa</code></li>
<li>公钥：<code>id_rsa.pub</code></li>
</ul>
</li>
<li>4 在 <code>github -&gt; settings -&gt; SSH and GPG keys</code>页面中，新创建SSH key</li>
<li>5 粘贴 公钥 <code>id_rsa.pub</code> 内容到对应文本框中</li>
<li>5 在github中新建仓库或者使用现在仓库，拿到<code>git@github.com:用户名/仓库名.git</code></li>
<li>6 此后，再次SSH方式与github“通信”，不用输入密码确认身份了</li>
</ul>
<h1 id="拓展-github-pages的使用"><a href="#拓展-github-pages的使用" class="headerlink" title="拓展: github-pages的使用"></a>拓展: github-pages的使用</h1><ol>
<li>github 允许创建一个非常特殊的一个仓库<code>用户名.github.io</code> 比如 <code>jiangpenger.github.io</code></li>
<li>clone下来新建index.html页面内容提交</li>
<li>访问<code>用户名.github.io</code> 即<code>jiangpenger.github.io</code></li>
</ol>

      
      
        <div class="page-reward">
          <p><a href="javascript:void(0)" onclick="dashangToggle()" class="dashang">赏</a></p>
          <div class="hide_box"></div>
          <div class="shang_box">
            <a class="shang_close" href="javascript:void(0)" onclick="dashangToggle()">×</a>
            <div class="shang_tit">
              <p>纯属好玩</p>
            </div>
            <div class="shang_payimg">
              <img src="/img/alipayimg.jpg" alt="扫码支持" title="扫一扫" />
            </div>
              <div class="pay_explain">扫码打赏，你说多少就多少</div>
            <div class="shang_payselect">
              
                <div class="pay_item checked" data-id="alipay">
                  <span class="radiobox"></span>
                  <span class="pay_logo"><img src="/img/alipay.png" alt="支付宝" /></span>
                </div>
              
              
                <div class="pay_item" data-id="wechat">
                  <span class="radiobox"></span>
                  <span class="pay_logo"><img src="/img/weixin.png" alt="微信" /></span>
                </div>
              
            </div>
            <div class="shang_info">
              <p>打开<span id="shang_pay_txt">支付宝</span>扫一扫，即可进行扫码打赏哦</p>
            </div>
          </div>
        </div>
        <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/zepto/1.2.0/zepto.min.js"></script>
        <script type="text/javascript">
          $(".pay_item").click(function(){
            $(this).addClass('checked').siblings('.pay_item').removeClass('checked');
            var dataid=$(this).attr('data-id');
            $(".shang_payimg img").attr("src","/img/"+dataid+"img.jpg");
            $("#shang_pay_txt").text(dataid=="alipay"?"支付宝":"微信");
          });
          function dashangToggle(){
            
            $(".hide_box").fadeToggle();
            $(".shang_box").fadeToggle();
          }
        </script>
      
    </div>
    
  </div>
  
    
    <div class="copyright">
        <p><span>本文标题:</span><a href="/2019/03/10/git%E4%B8%8Egithub%E4%BD%BF%E7%94%A8/">git与github使用</a></p>
        <p><span>文章作者:</span><a href="/" title="访问 程序猿 的个人博客">程序猿</a></p>
        <p><span>发布时间:</span>2019年03月10日 - 00时00分</p>
        <p><span>最后更新:</span>2020年05月19日 - 09时05分</p>
        <p>
            <span>原始链接:</span><a class="post-url" href="/2019/03/10/git%E4%B8%8Egithub%E4%BD%BF%E7%94%A8/" title="git与github使用">http://yoursite.com/2019/03/10/git%E4%B8%8Egithub%E4%BD%BF%E7%94%A8/</a>
            <span class="copy-path" data-clipboard-text="原文: http://yoursite.com/2019/03/10/git%E4%B8%8Egithub%E4%BD%BF%E7%94%A8/　　作者: 程序猿" title="点击复制文章链接"><i class="fa fa-clipboard"></i></span>
            <script src="/js/clipboard.min.js"></script>
            <script> var clipboard = new Clipboard('.copy-path'); </script>
        </p>
        <p>
            <span>许可协议:</span><i class="fa fa-creative-commons"></i> <a rel="license noopener" href="http://creativecommons.org/licenses/by-nc-sa/3.0/cn/" target="_blank" title="中国大陆 (CC BY-NC-SA 3.0 CN)" target = "_blank">"署名-非商用-相同方式共享 3.0"</a> 转载请保留原文链接及作者。
        </p>
    </div>



<nav id="article-nav">
  
    <a href="/2019/05/06/PHP%E7%9B%B8%E5%85%B3/" id="article-nav-newer" class="article-nav-link-wrap">
      <strong class="article-nav-caption"><</strong>
      <div class="article-nav-title">
        
          PHP相关
        
      </div>
    </a>
  
  
    <a href="/2018/12/10/ajax/" id="article-nav-older" class="article-nav-link-wrap">
      <div class="article-nav-title">ajax</div>
      <strong class="article-nav-caption">></strong>
    </a>
  
</nav>

  
</article>

    <div id="toc" class="toc-article">
    <strong class="toc-title">文章目录</strong>
    <ol class="toc"><li class="toc-item toc-level-1"><a class="toc-link" href="#版本控制系统"><span class="toc-number">1.</span> <span class="toc-text">版本控制系统</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#为什么要有版本控制系统"><span class="toc-number">1.1.</span> <span class="toc-text">为什么要有版本控制系统</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#什么是版本控制系统"><span class="toc-number">1.2.</span> <span class="toc-text">什么是版本控制系统</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#版本控制系统的分类"><span class="toc-number">1.3.</span> <span class="toc-text">版本控制系统的分类</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#本地版本控制系统"><span class="toc-number">1.3.1.</span> <span class="toc-text">本地版本控制系统</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#集中式版本控制系統"><span class="toc-number">1.3.2.</span> <span class="toc-text">集中式版本控制系統</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#分布式版本控制系统"><span class="toc-number">1.3.3.</span> <span class="toc-text">分布式版本控制系统</span></a></li></ol></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#git基础入门"><span class="toc-number">2.</span> <span class="toc-text">git基础入门</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#git的安装"><span class="toc-number">2.1.</span> <span class="toc-text">git的安装</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git三个区"><span class="toc-number">2.2.</span> <span class="toc-text">git三个区</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git基本命令"><span class="toc-number">2.3.</span> <span class="toc-text">git基本命令</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#git-init"><span class="toc-number">2.3.1.</span> <span class="toc-text">git init</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#git-add"><span class="toc-number">2.3.2.</span> <span class="toc-text">git add</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#git-commit"><span class="toc-number">2.3.3.</span> <span class="toc-text">git commit</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#git-config配置"><span class="toc-number">2.3.4.</span> <span class="toc-text">git config配置</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#git-status"><span class="toc-number">2.3.5.</span> <span class="toc-text">git status</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#git-log"><span class="toc-number">2.3.6.</span> <span class="toc-text">git log</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git对比"><span class="toc-number">2.4.</span> <span class="toc-text">git对比</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#git-diff"><span class="toc-number">2.4.1.</span> <span class="toc-text">git diff</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git重置"><span class="toc-number">2.5.</span> <span class="toc-text">git重置</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#git-reset"><span class="toc-number">2.5.1.</span> <span class="toc-text">git reset</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git忽视文件"><span class="toc-number">2.6.</span> <span class="toc-text">git忽视文件</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#git分支操作"><span class="toc-number">3.</span> <span class="toc-text">git分支操作</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#为什么要有分支？"><span class="toc-number">3.1.</span> <span class="toc-text">为什么要有分支？</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git分支命令"><span class="toc-number">3.2.</span> <span class="toc-text">git分支命令</span></a><ol class="toc-child"><li class="toc-item toc-level-3"><a class="toc-link" href="#创建分支"><span class="toc-number">3.2.1.</span> <span class="toc-text">创建分支</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#查看分支"><span class="toc-number">3.2.2.</span> <span class="toc-text">查看分支</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#切换分支"><span class="toc-number">3.2.3.</span> <span class="toc-text">切换分支</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#创建并切换分支"><span class="toc-number">3.2.4.</span> <span class="toc-text">创建并切换分支</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#删除分支"><span class="toc-number">3.2.5.</span> <span class="toc-text">删除分支</span></a></li><li class="toc-item toc-level-3"><a class="toc-link" href="#合并分支"><span class="toc-number">3.2.6.</span> <span class="toc-text">合并分支</span></a></li></ol></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git合并冲突"><span class="toc-number">3.3.</span> <span class="toc-text">git合并冲突</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#git远程仓库"><span class="toc-number">4.</span> <span class="toc-text">git远程仓库</span></a><ol class="toc-child"><li class="toc-item toc-level-2"><a class="toc-link" href="#github与git"><span class="toc-number">4.1.</span> <span class="toc-text">github与git</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git-clone"><span class="toc-number">4.2.</span> <span class="toc-text">git clone</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git-push"><span class="toc-number">4.3.</span> <span class="toc-text">git push</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git-pull"><span class="toc-number">4.4.</span> <span class="toc-text">git pull</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#git-remote"><span class="toc-number">4.5.</span> <span class="toc-text">git remote</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#SSH免密码登陆"><span class="toc-number">4.6.</span> <span class="toc-text">SSH免密码登陆</span></a></li><li class="toc-item toc-level-2"><a class="toc-link" href="#SSH免密码登录配置"><span class="toc-number">4.7.</span> <span class="toc-text">SSH免密码登录配置</span></a></li></ol></li><li class="toc-item toc-level-1"><a class="toc-link" href="#拓展-github-pages的使用"><span class="toc-number">5.</span> <span class="toc-text">拓展: github-pages的使用</span></a></li></ol>
</div>
<input type="button" id="tocButton" value="隐藏目录"  title="点击按钮隐藏或者显示文章目录">


<script src="https://7.url.cn/edu/jslib/comb/require-2.1.6,jquery-1.9.1.min.js"></script>

<script>
    var valueHide = "隐藏目录";
    var valueShow = "显示目录";

    if ($(".left-col").is(":hidden")) {
        $("#tocButton").attr("value", valueShow);
    }
    $("#tocButton").click(function() {
        if ($("#toc").is(":hidden")) {
            $("#tocButton").attr("value", valueHide);
            $("#toc").slideDown(320);
        }
        else {
            $("#tocButton").attr("value", valueShow);
            $("#toc").slideUp(350);
        }
    })
    if ($(".toc").length < 1) {
        $("#toc, #tocButton").hide();
    }
</script>





<div class="bdsharebuttonbox">
	<a href="#" class="fx fa-weibo bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a>
	<a href="#" class="fx fa-weixin bds_weixin" data-cmd="weixin" title="分享到微信"></a>
	<a href="#" class="fx fa-qq bds_sqq" data-cmd="sqq" title="分享到QQ好友"></a>
	<a href="#" class="fx fa-facebook-official bds_fbook" data-cmd="fbook" title="分享到Facebook"></a>
	<a href="#" class="fx fa-twitter bds_twi" data-cmd="twi" title="分享到Twitter"></a>
	<a href="#" class="fx fa-linkedin bds_linkedin" data-cmd="linkedin" title="分享到linkedin"></a>
	<a href="#" class="fx fa-files-o bds_copy" data-cmd="copy" title="分享到复制网址"></a>
</div>
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"2","bdSize":"24"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script>




    
        <section id="comments">
  <div id="disqus_thread"></div>
    <script type="text/javascript">
    /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
    var disqus_shortname = 'swing'; // required: replace example with your forum shortname

    /* * * DON'T EDIT BELOW THIS LINE * * */
    (function() {
      var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
      dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
    })();
  </script>
  <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript" target="_blank" rel="noopener">comments powered by Disqus.</a></noscript>
</section>
    



    <div class="scroll" id="post-nav-button">
        
            <a href="/2019/05/06/PHP%E7%9B%B8%E5%85%B3/" title="上一篇: PHP相关">
                <i class="fa fa-angle-left"></i>
            </a>
        
        <a title="文章列表"><i class="fa fa-bars"></i><i class="fa fa-times"></i></a>
        
            <a href="/2018/12/10/ajax/" title="下一篇: ajax">
                <i class="fa fa-angle-right"></i>
            </a>
        
    </div>
    <ul class="post-list"><li class="post-list-item"><a class="post-list-link" href="/2020/05/19/CSS3/">CSS3</a></li><li class="post-list-item"><a class="post-list-link" href="/2020/01/05/VUE%E7%9B%B8%E5%85%B3/">VUE相关</a></li><li class="post-list-item"><a class="post-list-link" href="/2019/12/05/es6%E7%9B%B8%E5%85%B3/">es6相关</a></li><li class="post-list-item"><a class="post-list-link" href="/2019/10/10/%E7%A7%BB%E5%8A%A8%E7%AB%AF%E5%BC%80%E5%8F%91%E5%9F%BA%E7%A1%80/">移动端开发基础</a></li><li class="post-list-item"><a class="post-list-link" href="/2019/05/06/PHP%E7%9B%B8%E5%85%B3/">PHP相关</a></li><li class="post-list-item"><a class="post-list-link" href="/2019/03/10/git%E4%B8%8Egithub%E4%BD%BF%E7%94%A8/">git与github使用</a></li><li class="post-list-item"><a class="post-list-link" href="/2018/12/10/ajax/">ajax</a></li></ul>
    <script src="https://7.url.cn/edu/jslib/comb/require-2.1.6,jquery-1.9.1.min.js"></script>
    <script>
        $(".post-list").addClass("toc-article");
        $(".post-list-item a").attr("target","_blank");
        $("#post-nav-button > a:nth-child(2)").click(function() {
            $(".fa-bars, .fa-times").toggle();
            $(".post-list").toggle(300);
            if ($(".toc").length > 0) {
                $("#toc, #tocButton").toggle(200, function() {
                    if ($(".switch-area").is(":visible")) {
                        $("#tocButton").attr("value", valueHide);
                        }
                    })
            }
            else {
            }
        })
    </script>



    <script>
        
    </script>
</div>
      <footer id="footer">
    <div class="outer">
        <div id="footer-info">
            <div class="footer-left">
                &copy; 2020 程序猿
            </div>
            <div class="footer-right">
                <a href="http://hexo.io/" target="_blank">Hexo</a>  Theme <a href="http://bestwing.me" target="_blank">Sw'blog</a> by Swing
            </div>
        </div>
        
            <div class="visit">
                
                    <span id="busuanzi_container_site_pv" style='display:none'>
                        <span id="site-visit" >海贼到访数: 
                            <span id="busuanzi_value_site_uv"></span>
                        </span>
                    </span>
                
                
                    <span>, </span>
                
                
                    <span id="busuanzi_container_page_pv" style='display:none'>
                        <span id="page-visit">本页阅读量: 
                            <span id="busuanzi_value_page_pv"></span>
                        </span>
                    </span>
                
            </div>
        
    </div>
</footer>

    </div>
    
<script src="https://7.url.cn/edu/jslib/comb/require-2.1.6,jquery-1.9.1.min.js"></script>


<script src="/js/main.js"></script>


    <script>
        $(document).ready(function() {
            var backgroundnum = 24;
            var backgroundimg = "url(/background/bg-x.jpg)".replace(/x/gi, Math.ceil(Math.random() * backgroundnum));
            $("#mobile-nav").css({"background-image": backgroundimg,"background-size": "cover","background-position": "center"});
            $(".left-col").css({"background-image": backgroundimg,"background-size": "cover","background-position": "center"});
        })
    </script>





<div class="scroll" id="scroll">
    <a href="#"><i class="fa fa-arrow-up"></i></a>
    <a href="#comments"><i class="fa fa-comments-o"></i></a>
    <a href="#footer"><i class="fa fa-arrow-down"></i></a>
</div>
<script>
    $(document).ready(function() {
        if ($("#comments").length < 1) {
            $("#scroll > a:nth-child(2)").hide();
        };
    })
</script>

<script async src="https://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js">
</script>

  <script language="javascript">
    $(function() {
        $("a[title]").each(function() {
            var a = $(this);
            var title = a.attr('title');
            if (title == undefined || title == "") return;
            a.data('title', title).removeAttr('title').hover(

            function() {
                var offset = a.offset();
                $("<div id=\"anchortitlecontainer\"></div>").appendTo($("body")).html(title).css({
                    top: offset.top - a.outerHeight() - 15,
                    left: offset.left + a.outerWidth()/2 + 1
                }).fadeIn(function() {
                    var pop = $(this);
                    setTimeout(function() {
                        pop.remove();
                    }, pop.text().length * 800);
                });
            }, function() {
                $("#anchortitlecontainer").remove();
            });
        });
    });
</script>


    <script type="text/javascript">
      window.onload = function(){
        document.getElementById("search").onclick = function(){
            console.log("search")
            search();
        }
      }
      function search(){
        (function(w,d,t,u,n,s,e){w['SwiftypeObject']=n;w[n]=w[n]||function(){
        (w[n].q=w[n].q||[]).push(arguments);};s=d.createElement(t);
        e=d.getElementsByTagName(t)[0];s.async=1;s.src=u;e.parentNode.insertBefore(s,e);
        })(window,document,'script','//s.swiftypecdn.com/install/v2/st.js','_st');

        _st('install','A1Pz-LKMXbrzcFg2FWi6','2.0.0');
      }
    </script>

  </div>
</body>
</html>